using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidad;
using Dao;
using System.Data;

public partial class IngresarNotaAlumno : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuario u = Session["login"] as Usuario;
            if (u.tipoUsuario != "Docente")
                Response.Redirect("~/Login.aspx");
        }
    }
    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuario usu = Session["login"] as Usuario;
            listAsignatura.DataSource = RendimientoDao.CargarDDLAsignaturas(usu.legajo);
            listAsignatura.DataTextField = "nombreMateria";
            listAsignatura.DataValueField = "codAsignatura";
            listAsignatura.DataBind();

            listAsignatura.Items.Insert(0,"Seleccione una");
            listTipoNota.Items.Insert(0, "Seleccione una");

            btnAgregar.Visible = false;
        }
    }

    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            NotaAlumno na = new NotaAlumno();
            
            na.tipoNota =int.Parse(listTipoNota.SelectedValue.ToString());
            na.nota = int.Parse(txtNota.Text);
            na.fecha = DateTime.Now.Date;
            na.observacion = txtObservacion.Text;
            try
            {
                if (bool.Parse(ViewState["actualiza"].ToString()) == false)
                {
                    na.legajo = int.Parse(listAlumnos.SelectedValue);
                    IngresaNotaAlumnoDao.InsertarNota(na, int.Parse(listAsignatura.SelectedValue));
                    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "keyhere", "alert('Se cargo con exito la nota del alumno con legajo " + na.legajo + ".');", true);
                }
                else
                {
                    na.codNota = (int)ViewState["codNota"];
                    na.legajo = (int)ViewState["legajo"];
                    IngresaNotaAlumnoDao.ActualizarNota(na, int.Parse(listAsignatura.SelectedValue));
                    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "keyhere", "alert('Se actualizo con exito la nota del alumno con legajo " + na.legajo + ".');", true);
                }
                txtNota.Text = string.Empty;
                listTipoNota.SelectedIndex = 0;
                txtObservacion.Text = string.Empty;
                mpeAlumno.Hide();
                this.CargarTabla();
            }
            catch (ApplicationException aex)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "keyhere", "alert('Eror al cargar la nota al alumno, debido a: \n " + aex.Message + "');", true);
            }
        }
    }

    protected void btnCargar_Click(object sender, EventArgs e)
    {
        if(Page.IsValid)
        this.CargarTabla();
    }
    public void CargarTabla()
    {
       if (IngresaNotaAlumnoDao.ValidarInscripciones(int.Parse(listAsignatura.SelectedValue)))
        {
            btnAgregar.Visible = true;
            gvAlumnos.EmptyDataText = "Aun no se ingresaron las notas de parciales para los alumnos.";
            
        }
        else
        {
            btnAgregar.Visible = false;
            gvAlumnos.EmptyDataText = "Sin alumnos inscripto para esta asignatura.";
        } 
        gvAlumnos.DataSource = IngresaNotaAlumnoDao.ObtenerTodo(int.Parse(listAsignatura.SelectedValue));
        gvAlumnos.DataKeyNames = new string[] { "codNota", "legajo", "tipoNota", "nota", "observacion" };
        gvAlumnos.DataBind();
        
        tituloGV.InnerText = "Lista del curso: " + listAsignatura.SelectedItem.ToString();
        
    }
    protected void btnCerrar_Click(object sender, EventArgs e)
    {
        mpeAlumno.Hide();
    }

    protected void gvAlumnos_SelectedIndexChanged(object sender, EventArgs e)
    {
        ViewState["codNota"] = int.Parse(gvAlumnos.SelectedDataKey.Values["codNota"].ToString());
        ViewState["legajo"] = int.Parse(gvAlumnos.SelectedDataKey.Values["legajo"].ToString());
        txtNota.Text = gvAlumnos.SelectedDataKey.Values["nota"].ToString();
        listTipoNota.SelectedValue = gvAlumnos.SelectedDataKey.Values["tipoNota"].ToString();
        txtObservacion.Text = gvAlumnos.SelectedDataKey.Values["observacion"].ToString();
        ViewState["actualiza"] = true;
        divListAlumnos.Visible = false;
        mpeAlumno.Show();
    }
    protected void btnAgregar_Click(object sender, EventArgs e)
    {
        txtNota.Text = string.Empty;
        listTipoNota.SelectedIndex = 0;
        txtObservacion.Text = string.Empty;
        ViewState["actualiza"] = false;
        divListAlumnos.Visible = true;
        listAlumnos.DataSource = IngresaNotaAlumnoDao.ObtenerAlumnos(int.Parse(listAsignatura.SelectedValue));
        listAlumnos.DataTextField = "nombre";
        listAlumnos.DataValueField = "legajo";
        listAlumnos.DataBind();
        listAlumnos.Items.Insert(0, "Seleccione uno");
        mpeAlumno.Show();
    }
}